<template>
  <div class="vue-box submit-box--dialog" style="width: 700px">
    <div class="c-card">
      <el-form :inline="false" label-width="11em" :model="state.model" ref="formRef">
        <!-- <in-input type="select" prop="fixmedins_code" name="所属医疗机构" v-model="state.model.fixmedins_code" required :options="orgList"></in-input> -->
        <!-- 科室名称 -->
        <in-input type="text" prop="hosp_dept_name" name="医院科室名称" v-model="state.model.hosp_dept_name" required></in-input>
        <!-- 科室编码 -->
        <in-input type="text" prop="hosp_dept_codg" name="医院科室编码" v-model="state.model.hosp_dept_codg" required></in-input>
        <!-- 科别 -->
        <in-input type="text" prop="caty" name="科别" v-model="state.model.caty" required></in-input>
        <!-- 科室成立日期 -->
        <in-input type="date" prop="dept_estbdat" name="成立日期" v-model="state.model.dept_estbdat" required></in-input>
        <!-- 开始时间 -->
        <in-input type="date" prop="begntime" name="开始时间" v-model="state.model.begntime" required></in-input>
        <!-- 结束时间 -->
        <in-input type="date" prop="endtime" name="结束时间" v-model="state.model.endtime" required></in-input>
        <!-- 科室负责人姓名 -->
        <in-input type="text" prop="dept_resper_name" name="科室负责人姓名" v-model="state.model.dept_resper_name" required></in-input>
        <!-- 科室负责人电话 -->
        <in-input type="text" prop="dept_resper_tel" name="科室负责人电话" v-model="state.model.dept_resper_tel" required></in-input>
        <!-- 医师人数 -->
        <in-input type="text" prop="dr_psncnt" name="医师人数" v-model="state.model.dr_psncnt" required></in-input>
        <!-- 药师人数 -->
        <in-input type="text" prop="phar_psncnt" name="药师人数" v-model="state.model.phar_psncnt" required></in-input>
        <!-- 护士人数 -->
        <in-input type="text" prop="nurs_psncnt" name="护士人数" v-model="state.model.nurs_psncnt" required></in-input>
        <!-- 技师人数 -->
        <in-input type="text" prop="tecn_psncnt" name="技师人数" v-model="state.model.tecn_psncnt" required></in-input>
        <!-- 批准床位数量 -->
        <in-input type="text" prop="aprv_bed_cnt" name="批准床位数量" v-model="state.model.aprv_bed_cnt" required></in-input>
        <!-- 医保认可床位数 -->
        <in-input type="text" prop="hi_crtf_bed_cnt" name="医保认可床位数" v-model="state.model.hi_crtf_bed_cnt" required></in-input>
        <!-- 科室医疗服务范围 -->
        <in-input type="text" prop="dept_med_serv_scp" name="科室医疗服务范围" v-model="state.model.dept_med_serv_scp" required></in-input>
        <!-- 统筹区编号 -->
        <in-input type="text" prop="poolarea_no" name="统筹区编号" v-model="state.model.poolarea_no" required></in-input>
        <!-- 简介 -->
        <in-input type="textarea" prop="itro" name="简介" v-model="state.model.itro" required></in-input>
        <!-- 备注 -->
        <in-input type="textarea" prop="memo" name="备注" v-model="state.model.memo"></in-input>
      </el-form>
    </div>
  </div>
</template>

<script setup name="org-edit">
import { getCurrentInstance, onMounted, reactive, ref } from 'vue'
import {useUserStore} from "@/store/user";
const userInfo = useUserStore().userInfo
const { proxy } = getCurrentInstance()

const formRef = ref(null)
// 获取插值
const prop = defineProps({
  param: { type: Object },
})

// ------------------ 数据 ------------------
const state = reactive({
  id: proxy.param?.id || 0, // 获取传值id （0=添加，非0=修改）
  model: {
    // 数据 Model
    // fixmedins_code: '',
    hosp_dept_name: '',      // 科室名称
    hosp_dept_codg: '',      // 科室编码
    caty: '',                // 科别
    dept_estbdat: '',        // 科室成立日期
    begntime: '',            // 开始时间
    endtime: '',             // 结束时间
    dept_resper_name: '',    // 科室负责人姓名
    dept_resper_tel: '',     // 科室负责人电话
    dr_psncnt: '',           // 医师人数
    phar_psncnt: '',         // 药师人数
    nurs_psncnt: '',         // 护士人数
    tecn_psncnt: '',         // 技师人数
    aprv_bed_cnt: '',        // 批准床位数量
    hi_crtf_bed_cnt: '',     // 医保认可床位数
    dept_med_serv_scp: '',   // 科室医疗服务范围
    poolarea_no: '',         // 统筹区编号
    itro: '',                // 简介
    memo: ''                 // 备注
  },
})

const orgList = ref([])

// 组件加载时触发
onMounted(function () {
  
  if (state.id !== 0) {
    const params = {
      deptId: state.id
    }
    sa.ajax('/api/webPresAdmin/deptDetail?deptId=', params,function (res) {
      if (!res.data) {
        return sa.alert('数据不存在')
      }
      state.model = res.data
      getOrgList(res.data.fixmedins_code)
    })
  }else {
    getOrgList()
  }
})

// 获取机构下拉框
function getOrgList(fixmedins_code = '') {
  const params = {
    pageindex: 0,
    pagesize: 300,
    fixmedins_code,
  }
  sa.ajax('/api/webPresAdmin/medinsinfoList', params,function (res) {
    orgList.value = res.data.map(item => {
        return {
            value: item.fixmedins_code,
            label: item.fixmedins_name
        }
    })
  })
}

// ------------------ 函数 ------------------

// 提交表单 
defineExpose({
    ok: async function () {
      
        // 表单校验 
        try {
          
            await formRef.value.validate()
            let model = {
                ...state.model,
                fixmedins_code: userInfo.fixmedins_code,
                fixmedins_name: userInfo.fixmedins_name
            }
            console.log('提交',state)
            // 如果是增加
            if(!state.id) {
                sa.ajax('/api/webPresAdmin/adddept', model, function(res) {
                    sa.alert('添加成功', function() {
                        sa.closeModel();
                        sa.currView().f5();
                    });
                });
            } else {
              console.log('修改')
                // 如果是修改 
                sa.ajax('/api/webPresAdmin/editdept', model, function(res) {
                    sa.alert('修改成功', function() {
                        sa.closeModel();
                        sa.currView().f5();
                    });
                });
            }
            
        } catch (error) {
            
        }
    }
});
</script>
<style></style>